package com.cccyy.data.entity;

import java.lang.reflect.Field;

public class AlertEntityValue {
    public static void main(String[] args) {
        MyEntity entity = new MyEntity();
        entity.setField1("value1");
        entity.setField2("EMPTY"); // 这里有一个字段的值为"EMPTY"

        boolean hasEmpty = hasEmptyValue(entity);
        System.out.println("Entity has an 'EMPTY' value? " + hasEmpty); // 输出: true
    }

    public static boolean hasEmptyValue(Object obj) {
        if (obj == null) {
            return false; // 或者根据需要抛出异常
        }
        Class<?> clazz = obj.getClass();
        for (Field field : clazz.getDeclaredFields()) {
            // 如果不需要访问私有字段，注释下一行
            field.setAccessible(true);
            try {
                // 检查字段是否为String类型
                if (field.getType().equals(String.class)) {
                    // 获取字段的值
                    String value = (String) field.get(obj);
                    // 检查值是否为"EMPTY"
                    if ("EMPTY".equals(value)) {
                        return true; // 如果找到，立即返回true
                    }
                }
            } catch (IllegalAccessException e) {
                // 处理无法访问的字段（如果setAccessible(true)被注释掉了）
                e.printStackTrace();
            }
        }

        // 如果没有找到值为"EMPTY"的字段，返回false
        return false;
    }
}

class MyEntity {
    private String field1;
    private String field2;

    // getters and setters...

    public String getField1() {
        return field1;
    }

    public void setField1(String field1) {
        this.field1 = field1;
    }

    public String getField2() {
        return field2;
    }

    public void setField2(String field2) {
        this.field2 = field2;
    }
}
